78 research outputs found

    Undocumented and unchecked: Exceptions that spell trouble

    Get PDF
    Modern programs rely on large application programming interfaces (APIs). The Android framework comprises 231 core APIs, and is used by countless developers. We examine a sample of 4,900 distinct crash stack traces from 1,800 different Android applications, looking for Android API methods with undocumented exceptions that are part of application crashes. For the purposes of this study, we take as a reference the version 15 of the Android API, which matches our stack traces. Our results show that a significant number of crashes (19%) might have been avoided if these methods had the corresponding exceptions documented as part of their interface

    A Survey of Performance Optimization for Mobile Applications

    Get PDF
    Nowadays there is a mobile application for almost everything a user may think of, ranging from paying bills and gathering information to playing games and watching movies. In order to ensure user satisfaction and success of applications, it is important to provide high performant applications. This is particularly important for resource constraint systems such as mobile devices. Thereby, non-functional performance characteristics, such as energy and memory consumption, play an important role for user satisfaction. This paper provides a comprehensive survey of non-functional performance optimization for Android applications. We collected 155 unique publications, published between 2008 and 2020, that focus on the optimization of non-functional performance of mobile applications. We target our search at four performance characteristics, in particular: responsiveness, launch time, memory and energy consumption. For each performance characteristic, we categorize optimization approaches based on the method used in the corresponding publications. Furthermore, we identify research gaps in the literature for future work

    Evaluating Automatic Program Repair Capabilities to Repair API Misuses

    Get PDF
    API misuses are well-known causes of software crashes and security vulnerabilities. However, their detection and repair is challenging given that the correct usages of (third-party) APIs might be obscure to the developers of client programs. This paper presents the first empirical study to assess the ability of existing automated bug repair tools to repair API misuses, which is a class of bugs previously unexplored. Our study examines and compares 14 Java test-suite-based repair tools (11 proposed before 2018, and three afterwards) on a manually curated benchmark (APIREPBENCH) consisting of 101 API misuses. We develop an extensible execution framework (APIARTY) to automatically execute multiple repair tools. Our results show that the repair tools are able to generate patches for 28% of the API misuses considered. While the 11 less recent tools are generally fast (the median execution time of the repair attempts is 3.87 minutes and the mean execution time is 30.79 minutes), the three most recent are less efficient (i.e., 98% slower) than their predecessors. The tools generate patches for API misuses that mostly belong to the categories of missing null check, missing value, missing exception, and missing call. Most of the patches generated by all tools are plausible (65%), but only few of these patches are semantically correct to human patches (25%). Our findings suggest that the design of future repair tools should support the localisation of complex bugs, including different categories of API misuses, handling of timeout issues, and ability to configure large software projects. Both APIREPBENCH and APIARTY have been made publicly available for other researchers to evaluate the capabilities of repair tools on detecting and fixing API misuses

    Fibroblasts profiling in scarring trachoma identifies IL-6 as a functional component of a fibroblast-macrophage pro-fibrotic and pro-inflammatory feedback loop

    Get PDF
    Trachoma is a conjunctiva scarring disease, which is the leading infectious cause of blindness worldwide. Yet, the molecular mechanisms underlying progressive fibrosis in trachoma are unknown. To investigate the contribution of local resident fibroblasts to disease progression, we isolated conjunctival fibroblasts from patients with scarring trachoma and matching control individuals, and compared their gene expression profiles and functional properties in vitro. We show that scarring trachoma fibroblasts substantially differ from control counterparts, displaying pro-fibrotic and pro-inflammatory features matched by an altered gene expression profile. This pro-inflammatory signature was exemplified by increased IL-6 expression and secretion, and a stronger response to macrophage-mediated stimulation of contraction. We further demonstrate that scarring trachoma fibroblasts can promote Akt phosphorylation in macrophages in an IL-6 –dependent manner. Overall this work has uncovered a distinctive molecular fingerprint for scarring trachoma fibroblasts, and identified IL-6- as a potential contributor to the chronic conjunctival fibrosis, mediating reciprocal pro-fibrotic/pro-inflammatory interactions between macrophages and fibroblasts

    Type Checking for Reliable APIs

    Get PDF
    In this paper, we propose to configure at compiletime the checking associated with Application ProgrammingInterfaces' methods that can receive possibly malformed values (e.g. erroneous user inputs and problematic retrieved recordsfrom databases) and thus cause application execution failures. To achieve this, we design a type system for implementing apluggable checker on the Java's compiler and find at compile timeinsufficient checking bugs that can lead to application crashesdue to malformed inputs. Our goal is to wrap methods whenthey receive external inputs so that the former generate checkedinstead of unchecked exceptions. We believe that our approachcan improve Java developers' productivity, by using exceptionhandling only when it is required, and ensure client applications'stability. We want to evaluate our checker by using it to verifythe source code of Java projects from the Apache ecosystem. Also, we want to analyze stack traces to validate the identifiedfailures by our checker

    The Evolution of C Programming Practices: A Study of the Unix Operating System 1973-2015

    Get PDF
    Tracking long-term progress in engineering and applied science allows us to take stock of things we have achieved, appreciate the factors that led to them, and set realistic goals for where we want to go. We formulate seven hypotheses associated with the long term evolution of C programming in the Unix operating system, and examine them by extracting, aggregating, and synthesising metrics from 66 snapshots obtained from a synthetic software configuration management repository covering a period of four decades. We found that over the years developers of the Unix operating system appear to have evolved their coding style in tandem with advancements in hardware technology, promoted modularity to tame rising complexity, adopted valuable new language features, allowed compilers to allocate registers on their behalf, and reached broad agreement regarding code formatting. The progress we have observed appears to be slowing or even reversing prompting the need for new sources of innovation to be discovered and followed

    Enabling real-time feedback in software engineering

    Get PDF
    Modern software projects consist of more than just code: Teams follow development processes, the code runs on servers or mobile phones and produces run time logs and users talk about the software in forums like StackOverflow and Twitter and rate it on app stores. Insights stemming from the real-time analysis of combined software engineering data can help software practitioners to conduct faster decision-making. With the development of CodeFeedr, a Real-time Software Analytics Platform , we aim to make software analytics a core feedback loop for software engineering projects. CodeFeedr's vision entails: (1) The ability to unify archival and current software analytics data under a single query language, and (2) The feasibility to apply new techniques and methods for high-level aggregation and summarization of near real-time information on software development. In this paper, we outline three use cases where our platform is expected to have a significant impact on the quality and speed of decision making; dependency management, productivity analytics, and run-time error feedback

    The laminin-keratin link shields the nucleus from mechanical deformation and signalling

    Get PDF
    The mechanical properties of the extracellular matrix dictate tissue behaviour. In epithelial tissues, laminin is a very abundant extracellular matrix component and a key supporting element. Here we show that laminin hinders the mechanoresponses of breast epithelial cells by shielding the nucleus from mechanical deformation. Coating substrates with laminin-111-unlike fibronectin or collagen I-impairs cell response to substrate rigidity and YAP nuclear localization. Blocking the laminin-specific integrin β4 increases nuclear YAP ratios in a rigidity-dependent manner without affecting the cell forces or focal adhesions. By combining mechanical perturbations and mathematical modelling, we show that β4 integrins establish a mechanical linkage between the substrate and keratin cytoskeleton, which stiffens the network and shields the nucleus from actomyosin-mediated mechanical deformation. In turn, this affects the nuclear YAP mechanoresponses, chromatin methylation and cell invasion in three dimensions. Our results demonstrate a mechanism by which tissues can regulate their sensitivity to mechanical signals.© 2023. The Author(s)

    Integrin Binding Dynamics Modulate Ligand-Specific Mechanosensing in Mammary Gland Fibroblasts

    Get PDF
    The link between integrin activity regulation and cellular mechanosensing of tissue rigidity, especially on different extracellular matrix ligands, remains poorly understood. Here, we find that primary mouse mammary gland stromal fibroblasts (MSFs) are able to spread efficiently, generate high forces, and display nuclear YAP on soft collagen-coated substrates, resembling the soft mammary gland tissue. We describe that loss of the integrin inhibitor, SHARPIN, impedes MSF spreading specifically on soft type I collagen but not on fibronectin. Through quantitative experiments and computational modeling, we find that SHARPIN-deficient MSFs display faster force-induced unbinding of adhesions from collagen-coated beads. Faster unbinding, in turn, impairs force transmission in these cells, particularly, at the stiffness optimum observed for wild-type cells. Mechanistically, we link the impaired mechanotransduction of SHARPIN-deficient cells on collagen to reduced levels of collagen-binding integrin α11β1. Thus integrin activity regulation and α11β1 play a role in collagen-specific mechanosensing in MSFs.</p
    • …
    corecore